#ifndef FILEDEFINE_H_
#define FILEDEFINE_H_
#include <inttypes.h>

#pragma pack(1)
struct fileHead
{
  char16_t Version[12]={'S','t','r','m','B','M','P','_','0','1','0','1'};
  int16_t  HeadLength=2048;
  int64_t  imageDataBlockLength;
  int64_t  additionalBlockLength;
  uint32_t imageWidth;
  uint32_t imageHeight;
  int16_t  pixelType=1; //像素构成种类
  int16_t  SamplingResolution=8;  //采样分辨率
  char16_t OperatorName[10]=u"一号实验员";  //操作员姓名
  char16_t ViewTarget[10]=u"均匀受拉试件"; //观测对象
  char16_t ViewEnvironment[50]=u"室温场景，拉伸试验机，最大载荷500N";  //观测环境
  char16_t FileName[50]=u"Camera1_20230110093028.StrmBMP";
  int64_t  FileCreateTime=20230110093028;
  char16_t cameraName[10]=u"Camera1";
  float    cameraGain=16.0f;  //相机增益
  float    cameraBlackOffset=0.0f;  //黑底偏置
  int32_t  cameraExpourseTime=100; //曝光时间
  int16_t  imageCollegeInfFrame=10;  //图像信息采集帧
  int32_t  additionalInfCollegeRate=10;  //附加信息采集频率
  int8_t   additionalChannelEnable=1;  //附加通道使能
  char16_t additionalChannelName[10]=u"载荷";  //附加信息通道名称
  char16_t additionalChannelUnit[8]=u"N";  ///附加信息单位
  int32_t  additionalDemarcate=1;  //附加信息标定系数
};

struct imageBlockHead
{
  uint64_t Index;
  uint64_t Time;
};

struct additionalBlockHead
{
  uint64_t Time;
  int16_t value;
};
#pragma pack()
#endif
